package com.tql.mall.boss.controller.api;

import com.tql.mall.boss.service.BaseAttrInfoService;
import com.tql.mall.boss.service.BaseCategoryTrademarkService;
import com.tql.mall.boss.service.BaseCategoryViewService;
import com.tql.mall.boss.service.BaseTrademarkService;
import com.tql.mall.model.product.BaseAttrInfo;
import com.tql.mall.model.product.BaseCategoryView;
import com.tql.mall.model.product.BaseTrademark;
import com.tql.mall.model.product.level.FirstLevel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Api(description = "service-boss对内暴露接口")
@RestController
@RequestMapping("/boss/api/inner")
public class BossApiController {

    @Autowired
    private BaseAttrInfoService baseAttrInfoService;
    @Autowired
    private BaseCategoryViewService baseCategoryViewService;
    @Autowired
    private BaseTrademarkService baseTrademarkService;
    @Autowired
    private BaseCategoryTrademarkService baseCategoryTrademarkService;


    /**
     * 根据描述完整商品分类信息的baseCategoryView对象获取该类商品的所有商品属性（商品属性当中包含了一系列商品属性值）
     * @param baseCategoryView
     * @return
     */
    //这个接口待修改
    @ApiOperation("根据商品完整分类对象BaseCategoryView获取该商品的商品属性(包含属性值)")
    @GetMapping("/getBaseAttrInfoVoList")
    public List<BaseAttrInfo> baseAttrInfoList(BaseCategoryView baseCategoryView){
        return baseAttrInfoService.getListByBaseCategoryView(baseCategoryView);
    }


    /**
     * 以嵌套的形式返回所有分类信息（一级二级三级）
     * @return
     */
    @ApiOperation("以嵌套的形式返回所有分类信息（一级二级三级）")
    @GetMapping("/getAllClassifyInfo")
    public List<FirstLevel> getAllClassifyInfo(){
//        List<FirstLevel> list = categoryOneService.getAllClassifyInfo();
//        return R.ok(list);
        return baseCategoryViewService.getAllClassifyInfo();
    }


    /**
     * 根据三级分类的 id，获取BaseCategoryView对象
     * @param id
     * @return
     */
    @ApiOperation("根据三级分类的 id，获取BaseCategoryView对象")
    @GetMapping("/getCategoryView/{id}")
    public BaseCategoryView getCategoryView(@PathVariable Long id){
        return baseCategoryViewService.getCategoryView(id);

    }


    @ApiOperation("根据品牌id获取品牌对象")
    @GetMapping("/getTrademarkById/{id}")
    public BaseTrademark getTrademarkById(@PathVariable Long id){
         return baseTrademarkService.getById(id);
    }



}
